package com.le.tester.onjava8.l_2_4;

/**
 * createTime：2023/2/2 17:04
 * description：创建不可变类，java中的引用可以指向不用的地址来操作不同的函数
 */
public class Immutable1 {

    private int data;

    public Immutable1(int data) {
        this.data = data;
    }

    public int read() {
        return data;
    }

    public boolean nonzero() {
        return data != 0;
    }

    public Immutable1 multiply(int multiplier) {
        return new Immutable1(data * multiplier);
    }

    public static void f(Immutable1 i1) {
        Immutable1 quad = i1.multiply(4);
        System.out.println("i1= " + i1.read());
        System.out.println("quad= " + quad.read());

    }

    public static void main(String[] args) {
        Immutable1 x = new Immutable1(47);
        System.out.println("x= " + x.read());

        f(x);

        System.out.println("x= " + x.read());
    }
}
